package com.knowledge.plus.比较器.内部比较器.示例;

import lombok.Getter;
import lombok.ToString;

/**
 * 内部比较器
 *
 * @author PF.Tian
 * @since 2022/3/1
 */
@Getter
@ToString
class Person implements Comparable<Person> {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * person对象没有实现Comparable接口，所以必须实现，这样才不会出错，才可以使TreeSet/TreeMap中的数据按指定顺序排列
     * 像String/Integer类等都已经实现了Comparable接口，所以不需要另外实现了
     */
    @Override
    public int compareTo(Person p) {
        if (this.age == p.age) {
            return this.name.compareTo(p.name);
        }
        return this.age - p.age;
    }

}
